//! 只读寄存器，用于编码 hart 的基本微架构

use bits::{BitsOps, IntoBits};

use crate::csrr;

pub fn read() -> usize {
    csrr!(marchid)
}
pub fn cache() -> Cache {
    Cache { raw: read() }
}
pub struct Cache {
    raw: usize,
}
impl Cache {
    /// 开源的 riscv-core 的 id 由 riscv 国际统一分配
    pub fn is_open(&self) -> bool {
        self.raw.bits(..).msb()
    }
}
